package com.openspring.platform.dao;

import java.util.List;
import java.util.Map;

public interface SecurityDAO {
	
	/**
	 * 根据资源主键得到与之关联的操作
	 * @param resourceId 资源主键
	 * @return
	 */
	List<Map<String, Object>> queryResourceOperators(Long resourceId);
	
	/**
	 * 根据资源主键删除与之关联的操作
	 * @param resourceId 资源主键
	 * @return
	 */
	int deleteResourceOperators(Long resourceId);
	
	/**
	 * 添加与资源关联的操作
	 * @param resourceId 资源主键
	 * @param operatorIds 操作主键数组
	 * @return
	 */
	int[] insertResourceOperators(Long resourceId, Long...operatorId);
	
	/**
	 * 根据组主键得到该组的操作权限
	 * @param roleId 组主键
	 * @return
	 */
	List<Map<String, Object>> queryOperatorPermissions(Long roleId);
	
	/**
	 * 根据组主键和资源主键得到该组下该资源的操作权限信息
	 * @param roleId 组主键
	 * @param resourceId 资源主键
	 * @return
	 */
	List<Map<String, Object>> queryResourceOperatorPermissions(Long roleId, Long resourceId);
	
	/**
	 * 根据组主键删除组操作权限
	 * @param role_id 组主键
	 * @return
	 */
	int deleteRoleOperatorPermissions(Long roleId);
	
	/**
	 * 保存组操作权限
	 * @param roleId 组主键
	 * @param resourceIds 资源主键数组
	 * @param operatorIds 操作主键数组
	 * @return
	 */
	int[] insertRoleOperatorPermissions(Long roleId, Long[] resourceIds, Long[] operatorIds);
}
